package com.wangshouyu.mp.user;

import com.google.common.io.ByteStreams;
import com.wangshouyu.mp.base.request.HttpMethod;
import com.wangshouyu.mp.base.request.MpClient;
import com.wangshouyu.mp.base.request.RequestBody;
import com.wangshouyu.mp.media.MediaInfo;
import com.wangshouyu.mp.utils.GsonUtils;

import java.text.MessageFormat;

import static com.wangshouyu.mp.base.constant.UrlConstant.*;

/**
 * @author 王守钰
 * @date 2020年12月24日 09:27
 * @description 用户处理器
 */
public class UserHandler {

    private UserHandler() {
    }

    /**
     * 查询用户列表
     * @param mpClient 客户端
     * @param accessToken token
     * @param nextOpenId 下一个用户id
     * @return 用户列表
     */
    public static UserResponse list(MpClient mpClient, String accessToken, String nextOpenId){
        String url = MessageFormat.format(GET_USER_URL, accessToken, nextOpenId);
        return mpClient.request(HttpMethod.GET, url, UserResponse.class);
    }

    /**
     * 获取用户信息
     * @param mpClient 客户端
     * @param accessToken token
     * @param openId 用户id
     * @return 用户信息
     */
    public static UserInfoResponse userInfo(MpClient mpClient, String accessToken, String openId){
        String url = MessageFormat.format(GET_USER_INFO, accessToken, openId);
        return mpClient.request(HttpMethod.GET, url, UserInfoResponse.class);
    }

    /**
     * 用户信息列表
     * @param mpClient 客户端
     * @param accessToken token
     * @param request 请求
     * @return 用户信息列表
     */
    public static UserInfoListResponse userInfoList(MpClient mpClient, String accessToken, UserInfoListRequest request){
        String url = MessageFormat.format(GET_USER_INFO_LIST, accessToken);
        return mpClient.request(
                HttpMethod.POST,
                url,
                RequestBody.create(GsonUtils.toJson(request)),
                UserInfoListResponse.class);
    }
}
